// 求Sn=1!+2!+3!+4!+5!+…+n!之值，其中n是一个数字(n不超过20)。 
// 注意阶乘的取值范围已经超过int的范围
#include<stdio.h>
int main(){
    int n;
    long long int Sn=0,Sx = 1;
    scanf("%d", &n);
    for (int i=1; n >= i; i++){
        Sn = Sn + Sx;
        Sx = (i+1)*Sx;
    }
    printf("%lld", Sn);
}

// 类型名称            字节数    取值范围
// signed char           1        -128～+127
// short int             2        -32768～+32767
// int                   4        -2147483648～+2147483647
// long int              4        -2147483648～+2141483647
// long long int         8        -9223372036854775808～+9223372036854775807


// #include<stdio.h>
// int main(void)
// {
//     unsigned long int Sn = 0, An = 1; //或long long类型也行
//     int n, i;
//     scanf("%d", &n);
//     for (i = 1; n >= i; i++)
//     {
//         Sn = Sn + An;
//         An = (i + 1) * An;
//     }
//     printf("%lu", Sn); //如果上面声明的是long long类型，这里占位符相应也就是%lld
//     return 0;
// }